home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / extras / mibs / SNMP-VIEW-BASED-ACM-MIB.txt < prev    next >
Text File  |  2005-03-30  |  34KB  |  810 lines

  1. SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
  2.  
  3. IMPORTS
  4.     MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
  5.     MODULE-IDENTITY, OBJECT-TYPE,
  6.     snmpModules                           FROM SNMPv2-SMI
  7.     TestAndIncr,
  8.     RowStatus, StorageType                FROM SNMPv2-TC
  9.     SnmpAdminString,
  10.     SnmpSecurityLevel,
  11.     SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;
  12.  
  13. snmpVacmMIB       MODULE-IDENTITY
  14.     LAST-UPDATED "9901200000Z"            -- 20 Jan 1999, midnight
  15.     ORGANIZATION "SNMPv3 Working Group"
  16.     CONTACT-INFO "WG-email:   snmpv3@lists.tislabs.com
  17.                   Subscribe:  majordomo@lists.tislabs.com
  18.                               In message body:  subscribe snmpv3
  19.  
  20.                   Chair:      Russ Mundy
  21.                               Trusted Information Systems
  22.                   postal:     3060 Washington Rd
  23.                               Glenwood MD 21738
  24.                               USA
  25.                   email:      mundy@tislabs.com
  26.                   phone:      +1-301-854-6889
  27.  
  28.                   Co-editor:  Bert Wijnen
  29.                               IBM T.J. Watson Research
  30.                   postal:     Schagen 33
  31.                               3461 GL Linschoten
  32.                               Netherlands
  33.                   email:      wijnen@vnet.ibm.com
  34.                   phone:      +31-348-432-794
  35.  
  36.                   Co-editor:  Randy Presuhn
  37.                               BMC Software, Inc
  38.                   postal:     965 Stewart Drive
  39.                               Sunnyvale, CA 94086
  40.                               USA
  41.                   email:      randy_presuhn@bmc.com
  42.                   phone:      +1-408-616-3100
  43.  
  44.                   Co-editor:  Keith McCloghrie
  45.                               Cisco Systems, Inc.
  46.                   postal:     170 West Tasman Drive
  47.                               San Jose, CA  95134-1706
  48.                               USA
  49.                   email:      kzm@cisco.com
  50.                   phone:      +1-408-526-5260
  51.                  "
  52.     DESCRIPTION  "The management information definitions for the
  53.                   View-based Access Control Model for SNMP.
  54.                  "
  55. --  Revision history
  56.     REVISION     "9901200000Z"            -- 20 Jan 1999, midnight
  57.     DESCRIPTION  "Clarifications, published as RFC2575"
  58.  
  59.     REVISION     "9711200000Z"            -- 20 Nov 1997, midnight
  60.     DESCRIPTION  "Initial version, published as RFC2275"
  61.     ::= { snmpModules 16 }
  62.  
  63. -- Administrative assignments ****************************************
  64.  
  65. vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
  66. vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
  67.  
  68. -- Information about Local Contexts **********************************
  69.  
  70. vacmContextTable OBJECT-TYPE
  71.     SYNTAX       SEQUENCE OF VacmContextEntry
  72.     MAX-ACCESS   not-accessible
  73.     STATUS       current
  74.     DESCRIPTION "The table of locally available contexts.
  75.  
  76.                  This table provides information to SNMP Command
  77.                  Generator applications so that they can properly
  78.                  configure the vacmAccessTable to control access to
  79.                  all contexts at the SNMP entity.
  80.  
  81.                  This table may change dynamically if the SNMP entity
  82.                  allows that contexts are added/deleted dynamically
  83.                  (for instance when its configuration changes). Such
  84.                  changes would happen only if the management
  85.                  instrumentation at that SNMP entity recognizes more
  86.                  (or fewer) contexts.
  87.  
  88.                  The presence of entries in this table and of entries
  89.                  in the vacmAccessTable are independent.  That is, a
  90.                  context identified by an entry in this table is not
  91.                  necessarily referenced by any entries in the
  92.                  vacmAccessTable; and the context(s) referenced by an
  93.                  entry in the vacmAccessTable does not necessarily
  94.                  currently exist and thus need not be identified by an
  95.                  entry in this table.
  96.  
  97.                  This table must be made accessible via the default
  98.                  context so that Command Responder applications have
  99.                  a standard way of retrieving the information.
  100.  
  101.                  This table is read-only. It cannot be configured via
  102.                  SNMP.
  103.                 "
  104.     ::= { vacmMIBObjects 1 }
  105.  
  106. vacmContextEntry OBJECT-TYPE
  107.     SYNTAX       VacmContextEntry
  108.     MAX-ACCESS   not-accessible
  109.     STATUS       current
  110.     DESCRIPTION "Information about a particular context."
  111.     INDEX       {
  112.                   vacmContextName
  113.                 }
  114.     ::= { vacmContextTable 1 }
  115.  
  116. VacmContextEntry ::= SEQUENCE
  117.     {
  118.         vacmContextName SnmpAdminString
  119.     }
  120.  
  121. vacmContextName  OBJECT-TYPE
  122.     SYNTAX       SnmpAdminString (SIZE(0..32))
  123.     MAX-ACCESS   read-only
  124.     STATUS       current
  125.     DESCRIPTION "A human readable name identifying a particular
  126.                  context at a particular SNMP entity.
  127.  
  128.                  The empty contextName (zero length) represents the
  129.                  default context.
  130.                 "
  131.     ::= { vacmContextEntry 1 }
  132.  
  133. -- Information about Groups ******************************************
  134.  
  135. vacmSecurityToGroupTable OBJECT-TYPE
  136.     SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
  137.     MAX-ACCESS   not-accessible
  138.     STATUS       current
  139.     DESCRIPTION "This table maps a combination of securityModel and
  140.                  securityName into a groupName which is used to define
  141.                  an access control policy for a group of principals.
  142.                 "
  143.     ::= { vacmMIBObjects 2 }
  144.  
  145. vacmSecurityToGroupEntry OBJECT-TYPE
  146.     SYNTAX       VacmSecurityToGroupEntry
  147.     MAX-ACCESS   not-accessible
  148.     STATUS       current
  149.     DESCRIPTION "An entry in this table maps the combination of a
  150.                  securityModel and securityName into a groupName.
  151.                 "
  152.     INDEX       {
  153.                   vacmSecurityModel,
  154.                   vacmSecurityName
  155.                 }
  156.     ::= { vacmSecurityToGroupTable 1 }
  157.  
  158. VacmSecurityToGroupEntry ::= SEQUENCE
  159.     {
  160.         vacmSecurityModel               SnmpSecurityModel,
  161.         vacmSecurityName                SnmpAdminString,
  162.         vacmGroupName                   SnmpAdminString,
  163.         vacmSecurityToGroupStorageType  StorageType,
  164.         vacmSecurityToGroupStatus       RowStatus
  165.     }
  166.  
  167. vacmSecurityModel OBJECT-TYPE
  168.     SYNTAX       SnmpSecurityModel(1..2147483647)
  169.     MAX-ACCESS   not-accessible
  170.     STATUS       current
  171.     DESCRIPTION "The Security Model, by which the vacmSecurityName
  172.                  referenced by this entry is provided.
  173.  
  174.                  Note, this object may not take the 'any' (0) value.
  175.                 "
  176.     ::= { vacmSecurityToGroupEntry 1 }
  177.  
  178. vacmSecurityName OBJECT-TYPE
  179.     SYNTAX       SnmpAdminString (SIZE(1..32))
  180.     MAX-ACCESS   not-accessible
  181.     STATUS       current
  182.     DESCRIPTION "The securityName for the principal, represented in a
  183.                  Security Model independent format, which is mapped by
  184.                  this entry to a groupName.
  185.                 "
  186.     ::= { vacmSecurityToGroupEntry 2 }
  187.  
  188. vacmGroupName    OBJECT-TYPE
  189.     SYNTAX       SnmpAdminString (SIZE(1..32))
  190.     MAX-ACCESS   read-create
  191.     STATUS       current
  192.     DESCRIPTION "The name of the group to which this entry (e.g., the
  193.                  combination of securityModel and securityName)
  194.                  belongs.
  195.  
  196.                  This groupName is used as index into the
  197.                  vacmAccessTable to select an access control policy.
  198.                  However, a value in this table does not imply that an
  199.                  instance with the value exists in table vacmAccesTable.
  200.                 "
  201.     ::= { vacmSecurityToGroupEntry 3 }
  202.  
  203. vacmSecurityToGroupStorageType OBJECT-TYPE
  204.     SYNTAX       StorageType
  205.     MAX-ACCESS   read-create
  206.     STATUS       current
  207.     DESCRIPTION "The storage type for this conceptual row.
  208.                  Conceptual rows having the value 'permanent' need not
  209.                  allow write-access to any columnar objects in the row.
  210.                 "
  211.     DEFVAL      { nonVolatile }
  212.     ::= { vacmSecurityToGroupEntry 4 }
  213.  
  214. vacmSecurityToGroupStatus OBJECT-TYPE
  215.     SYNTAX       RowStatus
  216.     MAX-ACCESS   read-create
  217.     STATUS       current
  218.     DESCRIPTION "The status of this conceptual row.
  219.  
  220.                  Until instances of all corresponding columns are
  221.                  appropriately configured, the value of the
  222.                  corresponding instance of the vacmSecurityToGroupStatus
  223.                  column is 'notReady'.
  224.  
  225.                  In particular, a newly created row cannot be made
  226.                  active until a value has been set for vacmGroupName.
  227.  
  228.                  The  RowStatus TC [RFC2579] requires that this
  229.                  DESCRIPTION clause states under which circumstances
  230.                  other objects in this row can be modified:
  231.  
  232.                  The value of this object has no effect on whether
  233.                  other objects in this conceptual row can be modified.
  234.                 "
  235.     ::= { vacmSecurityToGroupEntry 5 }
  236.  
  237. -- Information about Access Rights ***********************************
  238.  
  239. vacmAccessTable  OBJECT-TYPE
  240.     SYNTAX       SEQUENCE OF VacmAccessEntry
  241.     MAX-ACCESS   not-accessible
  242.     STATUS       current
  243.     DESCRIPTION "The table of access rights for groups.
  244.  
  245.                  Each entry is indexed by a groupName, a contextPrefix,
  246.                  a securityModel and a securityLevel.  To determine
  247.                  whether access is allowed, one entry from this table
  248.                  needs to be selected and the proper viewName from that
  249.                  entry must be used for access control checking.
  250.  
  251.                  To select the proper entry, follow these steps:
  252.  
  253.                  1) the set of possible matches is formed by the
  254.                     intersection of the following sets of entries:
  255.                       the set of entries with identical vacmGroupName
  256.                       the union of these two sets:
  257.                        - the set with identical vacmAccessContextPrefix
  258.                        - the set of entries with vacmAccessContextMatch
  259.                          value of 'prefix' and matching
  260.  
  261.                          vacmAccessContextPrefix
  262.                       intersected with the union of these two sets:
  263.                        - the set of entries with identical
  264.                          vacmSecurityModel
  265.                        - the set of entries with vacmSecurityModel
  266.                          value of 'any'
  267.                       intersected with the set of entries with
  268.                       vacmAccessSecurityLevel value less than or equal
  269.                       to the requested securityLevel
  270.  
  271.                  2) if this set has only one member, we're done
  272.                     otherwise, it comes down to deciding how to weight
  273.                     the preferences between ContextPrefixes,
  274.                     SecurityModels, and SecurityLevels as follows:
  275.                     a) if the subset of entries with securityModel
  276.                        matching the securityModel in the message is
  277.                        not empty, then discard the rest.
  278.                     b) if the subset of entries with
  279.                        vacmAccessContextPrefix matching the contextName
  280.                        in the message is not empty,
  281.                        then discard the rest
  282.                     c) discard all entries with ContextPrefixes shorter
  283.                        than the longest one remaining in the set
  284.                     d) select the entry with the highest securityLevel
  285.  
  286.                  Please note that for securityLevel noAuthNoPriv, all
  287.                  groups are really equivalent since the assumption that
  288.                  the securityName has been authenticated does not hold.
  289.                 "
  290.     ::= { vacmMIBObjects 4 }
  291.  
  292. vacmAccessEntry  OBJECT-TYPE
  293.     SYNTAX       VacmAccessEntry
  294.     MAX-ACCESS   not-accessible
  295.     STATUS       current
  296.     DESCRIPTION "An access right configured in the Local Configuration
  297.                  Datastore (LCD) authorizing access to an SNMP context.
  298.  
  299.                  Entries in this table can use an instance value for
  300.                  object vacmGroupName even if no entry in table
  301.                  vacmAccessSecurityToGroupTable has a corresponding
  302.                  value for object vacmGroupName.
  303.                 "
  304.     INDEX       { vacmGroupName,
  305.                   vacmAccessContextPrefix,
  306.                   vacmAccessSecurityModel,
  307.                   vacmAccessSecurityLevel
  308.                 }
  309.     ::= { vacmAccessTable 1 }
  310.  
  311. VacmAccessEntry ::= SEQUENCE
  312.     {
  313.         vacmAccessContextPrefix    SnmpAdminString,
  314.         vacmAccessSecurityModel    SnmpSecurityModel,
  315.         vacmAccessSecurityLevel    SnmpSecurityLevel,
  316.         vacmAccessContextMatch     INTEGER,
  317.         vacmAccessReadViewName     SnmpAdminString,
  318.         vacmAccessWriteViewName    SnmpAdminString,
  319.         vacmAccessNotifyViewName   SnmpAdminString,
  320.         vacmAccessStorageType      StorageType,
  321.         vacmAccessStatus           RowStatus
  322.     }
  323.  
  324. vacmAccessContextPrefix OBJECT-TYPE
  325.     SYNTAX       SnmpAdminString (SIZE(0..32))
  326.     MAX-ACCESS   not-accessible
  327.     STATUS       current
  328.     DESCRIPTION "In order to gain the access rights allowed by this
  329.                  conceptual row, a contextName must match exactly
  330.                  (if the value of vacmAccessContextMatch is 'exact')
  331.                  or partially (if the value of vacmAccessContextMatch
  332.                  is 'prefix') to the value of the instance of this
  333.                  object.
  334.                 "
  335.     ::= { vacmAccessEntry 1 }
  336.  
  337. vacmAccessSecurityModel OBJECT-TYPE
  338.     SYNTAX       SnmpSecurityModel
  339.     MAX-ACCESS   not-accessible
  340.     STATUS       current
  341.     DESCRIPTION "In order to gain the access rights allowed by this
  342.                  conceptual row, this securityModel must be in use.
  343.                 "
  344.     ::= { vacmAccessEntry 2 }
  345.  
  346. vacmAccessSecurityLevel OBJECT-TYPE
  347.     SYNTAX       SnmpSecurityLevel
  348.     MAX-ACCESS   not-accessible
  349.     STATUS       current
  350.     DESCRIPTION "The minimum level of security required in order to
  351.                  gain the access rights allowed by this conceptual
  352.                  row.  A securityLevel of noAuthNoPriv is less than
  353.                  authNoPriv which in turn is less than authPriv.
  354.  
  355.                  If multiple entries are equally indexed except for
  356.                  this vacmAccessSecurityLevel index, then the entry
  357.  
  358.                  which has the highest value for
  359.                  vacmAccessSecurityLevel is selected.
  360.                 "
  361.     ::= { vacmAccessEntry 3 }
  362.  
  363. vacmAccessContextMatch OBJECT-TYPE
  364.     SYNTAX       INTEGER
  365.                 { exact (1), -- exact match of prefix and contextName
  366.                   prefix (2) -- Only match to the prefix
  367.                 }
  368.     MAX-ACCESS   read-create
  369.     STATUS       current
  370.     DESCRIPTION "If the value of this object is exact(1), then all
  371.                  rows where the contextName exactly matches
  372.                  vacmAccessContextPrefix are selected.
  373.  
  374.                  If the value of this object is prefix(2), then all
  375.                  rows where the contextName whose starting octets
  376.                  exactly match vacmAccessContextPrefix are selected.
  377.                  This allows for a simple form of wildcarding.
  378.                 "
  379.     DEFVAL      { exact }
  380.     ::= { vacmAccessEntry 4 }
  381.  
  382. vacmAccessReadViewName OBJECT-TYPE
  383.     SYNTAX       SnmpAdminString (SIZE(0..32))
  384.     MAX-ACCESS   read-create
  385.     STATUS       current
  386.     DESCRIPTION "The value of an instance of this object identifies
  387.                  the MIB view of the SNMP context to which this
  388.                  conceptual row authorizes read access.
  389.  
  390.                  The identified MIB view is that one for which the
  391.                  vacmViewTreeFamilyViewName has the same value as the
  392.                  instance of this object; if the value is the empty
  393.                  string or if there is no active MIB view having this
  394.                  value of vacmViewTreeFamilyViewName, then no access
  395.                  is granted.
  396.                 "
  397.     DEFVAL      { ''H }   -- the empty string
  398.     ::= { vacmAccessEntry 5 }
  399.  
  400. vacmAccessWriteViewName OBJECT-TYPE
  401.     SYNTAX       SnmpAdminString (SIZE(0..32))
  402.     MAX-ACCESS   read-create
  403.     STATUS       current
  404.     DESCRIPTION "The value of an instance of this object identifies
  405.                  the MIB view of the SNMP context to which this
  406.  
  407.                  conceptual row authorizes write access.
  408.  
  409.                  The identified MIB view is that one for which the
  410.                  vacmViewTreeFamilyViewName has the same value as the
  411.                  instance of this object; if the value is the empty
  412.                  string or if there is no active MIB view having this
  413.                  value of vacmViewTreeFamilyViewName, then no access
  414.                  is granted.
  415.                 "
  416.     DEFVAL      { ''H }   -- the empty string
  417.     ::= { vacmAccessEntry 6 }
  418.  
  419. vacmAccessNotifyViewName OBJECT-TYPE
  420.     SYNTAX       SnmpAdminString (SIZE(0..32))
  421.     MAX-ACCESS   read-create
  422.     STATUS       current
  423.     DESCRIPTION "The value of an instance of this object identifies
  424.                  the MIB view of the SNMP context to which this
  425.                  conceptual row authorizes access for notifications.
  426.  
  427.                  The identified MIB view is that one for which the
  428.                  vacmViewTreeFamilyViewName has the same value as the
  429.                  instance of this object; if the value is the empty
  430.                  string or if there is no active MIB view having this
  431.                  value of vacmViewTreeFamilyViewName, then no access
  432.                  is granted.
  433.                 "
  434.     DEFVAL      { ''H }   -- the empty string
  435.     ::= { vacmAccessEntry 7 }
  436.  
  437. vacmAccessStorageType OBJECT-TYPE
  438.     SYNTAX       StorageType
  439.     MAX-ACCESS   read-create
  440.     STATUS       current
  441.     DESCRIPTION "The storage type for this conceptual row.
  442.  
  443.                  Conceptual rows having the value 'permanent' need not
  444.                  allow write-access to any columnar objects in the row.
  445.                 "
  446.     DEFVAL      { nonVolatile }
  447.     ::= { vacmAccessEntry 8 }
  448.  
  449. vacmAccessStatus OBJECT-TYPE
  450.     SYNTAX       RowStatus
  451.     MAX-ACCESS   read-create
  452.     STATUS       current
  453.     DESCRIPTION "The status of this conceptual row.
  454.  
  455.                  The  RowStatus TC [RFC2579] requires that this
  456.                  DESCRIPTION clause states under which circumstances
  457.                  other objects in this row can be modified:
  458.  
  459.                  The value of this object has no effect on whether
  460.                  other objects in this conceptual row can be modified.
  461.                 "
  462.     ::= { vacmAccessEntry 9 }
  463.  
  464. -- Information about MIB views ***************************************
  465.  
  466. -- Support for instance-level granularity is optional.
  467. --
  468. -- In some implementations, instance-level access control
  469. -- granularity may come at a high performance cost.  Managers
  470. -- should avoid requesting such configurations unnecessarily.
  471.  
  472. vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
  473.  
  474. vacmViewSpinLock OBJECT-TYPE
  475.     SYNTAX       TestAndIncr
  476.     MAX-ACCESS   read-write
  477.     STATUS       current
  478.     DESCRIPTION "An advisory lock used to allow cooperating SNMP
  479.                  Command Generator applications to coordinate their
  480.                  use of the Set operation in creating or modifying
  481.                  views.
  482.  
  483.                  When creating a new view or altering an existing
  484.                  view, it is important to understand the potential
  485.                  interactions with other uses of the view.  The
  486.                  vacmViewSpinLock should be retrieved.  The name of
  487.                  the view to be created should be determined to be
  488.                  unique by the SNMP Command Generator application by
  489.                  consulting the vacmViewTreeFamilyTable.  Finally,
  490.                  the named view may be created (Set), including the
  491.                  advisory lock.
  492.                  If another SNMP Command Generator application has
  493.                  altered the views in the meantime, then the spin
  494.                  lock's value will have changed, and so this creation
  495.                  will fail because it will specify the wrong value for
  496.                  the spin lock.
  497.  
  498.                  Since this is an advisory lock, the use of this lock
  499.                  is not enforced.
  500.                 "
  501.     ::= { vacmMIBViews 1 }
  502.  
  503. vacmViewTreeFamilyTable OBJECT-TYPE
  504.     SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
  505.     MAX-ACCESS   not-accessible
  506.     STATUS       current
  507.     DESCRIPTION "Locally held information about families of subtrees
  508.                  within MIB views.
  509.  
  510.                  Each MIB view is defined by two sets of view subtrees:
  511.                    - the included view subtrees, and
  512.                    - the excluded view subtrees.
  513.                  Every such view subtree, both the included and the
  514.                  excluded ones, is defined in this table.
  515.  
  516.                  To determine if a particular object instance is in
  517.                  a particular MIB view, compare the object instance's
  518.                  OBJECT IDENTIFIER with each of the MIB view's active
  519.                  entries in this table.  If none match, then the
  520.                  object instance is not in the MIB view.  If one or
  521.                  more match, then the object instance is included in,
  522.                  or excluded from, the MIB view according to the
  523.                  value of vacmViewTreeFamilyType in the entry whose
  524.                  value of vacmViewTreeFamilySubtree has the most
  525.                  sub-identifiers.  If multiple entries match and have
  526.                  the same number of sub-identifiers (when wildcarding
  527.                  is specified with the value of vacmViewTreeFamilyMask),
  528.                  then the lexicographically greatest instance of
  529.                  vacmViewTreeFamilyType determines the inclusion or
  530.                  exclusion.
  531.  
  532.                  An object instance's OBJECT IDENTIFIER X matches an
  533.                  active entry in this table when the number of
  534.                  sub-identifiers in X is at least as many as in the
  535.                  value of vacmViewTreeFamilySubtree for the entry,
  536.                  and each sub-identifier in the value of
  537.                  vacmViewTreeFamilySubtree matches its corresponding
  538.                  sub-identifier in X.  Two sub-identifiers match
  539.                  either if the corresponding bit of the value of
  540.                  vacmViewTreeFamilyMask for the entry is zero (the
  541.                  'wild card' value), or if they are equal.
  542.  
  543.                  A 'family' of subtrees is the set of subtrees defined
  544.                  by a particular combination of values of
  545.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
  546.                  In the case where no 'wild card' is defined in the
  547.                  vacmViewTreeFamilyMask, the family of subtrees reduces
  548.                  to a single subtree.
  549.  
  550.                  When creating or changing MIB views, an SNMP Command
  551.  
  552.                  Generator application should utilize the
  553.                  vacmViewSpinLock to try to avoid collisions. See
  554.                  DESCRIPTION clause of vacmViewSpinLock.
  555.  
  556.                  When creating MIB views, it is strongly advised that
  557.                  first the 'excluded' vacmViewTreeFamilyEntries are
  558.                  created and then the 'included' entries.
  559.  
  560.                  When deleting MIB views, it is strongly advised that
  561.                  first the 'included' vacmViewTreeFamilyEntries are
  562.                  deleted and then the 'excluded' entries.
  563.  
  564.                  If a create for an entry for instance-level access
  565.                  control is received and the implementation does not
  566.                  support instance-level granularity, then an
  567.                  inconsistentName error must be returned.
  568.                 "
  569.     ::= { vacmMIBViews 2 }
  570.  
  571. vacmViewTreeFamilyEntry OBJECT-TYPE
  572.     SYNTAX       VacmViewTreeFamilyEntry
  573.     MAX-ACCESS   not-accessible
  574.     STATUS       current
  575.     DESCRIPTION "Information on a particular family of view subtrees
  576.                  included in or excluded from a particular SNMP
  577.                  context's MIB view.
  578.  
  579.                  Implementations must not restrict the number of
  580.                  families of view subtrees for a given MIB view,
  581.                  except as dictated by resource constraints on the
  582.                  overall number of entries in the
  583.                  vacmViewTreeFamilyTable.
  584.  
  585.                  If no conceptual rows exist in this table for a given
  586.                  MIB view (viewName), that view may be thought of as
  587.                  consisting of the empty set of view subtrees.
  588.                 "
  589.     INDEX       { vacmViewTreeFamilyViewName,
  590.                   vacmViewTreeFamilySubtree
  591.                 }
  592.     ::= { vacmViewTreeFamilyTable 1 }
  593.  
  594. VacmViewTreeFamilyEntry ::= SEQUENCE
  595.     {
  596.         vacmViewTreeFamilyViewName     SnmpAdminString,
  597.         vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
  598.         vacmViewTreeFamilyMask         OCTET STRING,
  599.         vacmViewTreeFamilyType         INTEGER,
  600.         vacmViewTreeFamilyStorageType  StorageType,
  601.         vacmViewTreeFamilyStatus       RowStatus
  602.     }
  603.  
  604. vacmViewTreeFamilyViewName OBJECT-TYPE
  605.     SYNTAX       SnmpAdminString (SIZE(1..32))
  606.     MAX-ACCESS   not-accessible
  607.     STATUS       current
  608.     DESCRIPTION "The human readable name for a family of view subtrees.
  609.                 "
  610.     ::= { vacmViewTreeFamilyEntry 1 }
  611.  
  612. vacmViewTreeFamilySubtree OBJECT-TYPE
  613.     SYNTAX       OBJECT IDENTIFIER
  614.     MAX-ACCESS   not-accessible
  615.     STATUS       current
  616.     DESCRIPTION "The MIB subtree which when combined with the
  617.                  corresponding instance of vacmViewTreeFamilyMask
  618.                  defines a family of view subtrees.
  619.                 "
  620.     ::= { vacmViewTreeFamilyEntry 2 }
  621.  
  622. vacmViewTreeFamilyMask OBJECT-TYPE
  623.     SYNTAX       OCTET STRING (SIZE (0..16))
  624.     MAX-ACCESS   read-create
  625.     STATUS       current
  626.     DESCRIPTION "The bit mask which, in combination with the
  627.                  corresponding instance of vacmViewTreeFamilySubtree,
  628.                  defines a family of view subtrees.
  629.  
  630.                  Each bit of this bit mask corresponds to a
  631.                  sub-identifier of vacmViewTreeFamilySubtree, with the
  632.                  most significant bit of the i-th octet of this octet
  633.                  string value (extended if necessary, see below)
  634.                  corresponding to the (8*i - 7)-th sub-identifier, and
  635.                  the least significant bit of the i-th octet of this
  636.                  octet string corresponding to the (8*i)-th
  637.                  sub-identifier, where i is in the range 1 through 16.
  638.  
  639.                  Each bit of this bit mask specifies whether or not
  640.                  the corresponding sub-identifiers must match when
  641.                  determining if an OBJECT IDENTIFIER is in this
  642.                  family of view subtrees; a '1' indicates that an
  643.                  exact match must occur; a '0' indicates 'wild card',
  644.                  i.e., any sub-identifier value matches.
  645.  
  646.                  Thus, the OBJECT IDENTIFIER X of an object instance
  647.                  is contained in a family of view subtrees if, for
  648.  
  649.                  each sub-identifier of the value of
  650.                  vacmViewTreeFamilySubtree, either:
  651.  
  652.                    the i-th bit of vacmViewTreeFamilyMask is 0, or
  653.  
  654.                    the i-th sub-identifier of X is equal to the i-th
  655.                    sub-identifier of the value of
  656.                    vacmViewTreeFamilySubtree.
  657.  
  658.                  If the value of this bit mask is M bits long and
  659.                  there are more than M sub-identifiers in the
  660.                  corresponding instance of vacmViewTreeFamilySubtree,
  661.                  then the bit mask is extended with 1's to be the
  662.                  required length.
  663.  
  664.                  Note that when the value of this object is the
  665.                  zero-length string, this extension rule results in
  666.                  a mask of all-1's being used (i.e., no 'wild card'),
  667.                  and the family of view subtrees is the one view
  668.                  subtree uniquely identified by the corresponding
  669.                  instance of vacmViewTreeFamilySubtree.
  670.  
  671.                  Note that masks of length greater than zero length
  672.                  do not need to be supported. In this case this
  673.                  object is made read-only.
  674.                 "
  675.     DEFVAL      { ''H }
  676.     ::= { vacmViewTreeFamilyEntry 3 }
  677.  
  678. vacmViewTreeFamilyType OBJECT-TYPE
  679.     SYNTAX       INTEGER  { included(1), excluded(2) }
  680.     MAX-ACCESS   read-create
  681.     STATUS       current
  682.     DESCRIPTION "Indicates whether the corresponding instances of
  683.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
  684.                  define a family of view subtrees which is included in
  685.                  or excluded from the MIB view.
  686.                 "
  687.     DEFVAL      { included }
  688.     ::= { vacmViewTreeFamilyEntry 4 }
  689.  
  690. vacmViewTreeFamilyStorageType OBJECT-TYPE
  691.     SYNTAX       StorageType
  692.     MAX-ACCESS   read-create
  693.     STATUS       current
  694.     DESCRIPTION "The storage type for this conceptual row.
  695.  
  696.                  Conceptual rows having the value 'permanent' need not
  697.  
  698.                  allow write-access to any columnar objects in the row.
  699.                 "
  700.     DEFVAL      { nonVolatile }
  701.     ::= { vacmViewTreeFamilyEntry 5 }
  702.  
  703. vacmViewTreeFamilyStatus OBJECT-TYPE
  704.     SYNTAX       RowStatus
  705.     MAX-ACCESS   read-create
  706.     STATUS       current
  707.     DESCRIPTION "The status of this conceptual row.
  708.  
  709.                  The  RowStatus TC [RFC2579] requires that this
  710.                  DESCRIPTION clause states under which circumstances
  711.                  other objects in this row can be modified:
  712.  
  713.                  The value of this object has no effect on whether
  714.                  other objects in this conceptual row can be modified.
  715.                 "
  716.     ::= { vacmViewTreeFamilyEntry 6 }
  717.  
  718. -- Conformance information *******************************************
  719.  
  720. vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
  721. vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
  722.  
  723. -- Compliance statements *********************************************
  724.  
  725. vacmMIBCompliance MODULE-COMPLIANCE
  726.     STATUS       current
  727.     DESCRIPTION "The compliance statement for SNMP engines which
  728.                  implement the SNMP View-based Access Control Model
  729.                  configuration MIB.
  730.                 "
  731.     MODULE -- this module
  732.         MANDATORY-GROUPS { vacmBasicGroup }
  733.  
  734.         OBJECT        vacmAccessContextMatch
  735.         MIN-ACCESS    read-only
  736.         DESCRIPTION  "Write access is not required."
  737.  
  738.         OBJECT        vacmAccessReadViewName
  739.         MIN-ACCESS    read-only
  740.         DESCRIPTION  "Write access is not required."
  741.  
  742.         OBJECT        vacmAccessWriteViewName
  743.         MIN-ACCESS    read-only
  744.         DESCRIPTION  "Write access is not required."
  745.  
  746.         OBJECT        vacmAccessNotifyViewName
  747.         MIN-ACCESS    read-only
  748.         DESCRIPTION  "Write access is not required."
  749.  
  750.         OBJECT        vacmAccessStorageType
  751.         MIN-ACCESS    read-only
  752.         DESCRIPTION  "Write access is not required."
  753.  
  754.         OBJECT        vacmAccessStatus
  755.         MIN-ACCESS    read-only
  756.         DESCRIPTION  "Create/delete/modify access to the
  757.                       vacmAccessTable is not required.
  758.                      "
  759.  
  760.         OBJECT        vacmViewTreeFamilyMask
  761.         WRITE-SYNTAX  OCTET STRING (SIZE (0))
  762.         MIN-ACCESS    read-only
  763.         DESCRIPTION  "Support for configuration via SNMP of subtree
  764.                       families using wild-cards is not required.
  765.                      "
  766.  
  767.         OBJECT        vacmViewTreeFamilyType
  768.         MIN-ACCESS    read-only
  769.         DESCRIPTION  "Write access is not required."
  770.  
  771.         OBJECT        vacmViewTreeFamilyStorageType
  772.         MIN-ACCESS    read-only
  773.         DESCRIPTION  "Write access is not required."
  774.  
  775.         OBJECT        vacmViewTreeFamilyStatus
  776.         MIN-ACCESS    read-only
  777.         DESCRIPTION  "Create/delete/modify access to the
  778.                       vacmViewTreeFamilyTable is not required.
  779.                      "
  780.     ::= { vacmMIBCompliances 1 }
  781.  
  782. -- Units of conformance **********************************************
  783.  
  784. vacmBasicGroup OBJECT-GROUP
  785.     OBJECTS {
  786.               vacmContextName,
  787.               vacmGroupName,
  788.               vacmSecurityToGroupStorageType,
  789.               vacmSecurityToGroupStatus,
  790.               vacmAccessContextMatch,
  791.               vacmAccessReadViewName,
  792.               vacmAccessWriteViewName,
  793.               vacmAccessNotifyViewName,
  794.               vacmAccessStorageType,
  795.               vacmAccessStatus,
  796.               vacmViewSpinLock,
  797.               vacmViewTreeFamilyMask,
  798.               vacmViewTreeFamilyType,
  799.               vacmViewTreeFamilyStorageType,
  800.               vacmViewTreeFamilyStatus
  801.             }
  802.     STATUS       current
  803.     DESCRIPTION "A collection of objects providing for remote
  804.                  configuration of an SNMP engine which implements
  805.                  the SNMP View-based Access Control Model.
  806.                 "
  807.     ::= { vacmMIBGroups 1 }
  808.  
  809. END
  810.